ARAL使用说明

修订日期 修订版本 修订内容 修订人
2021.06.20 v0.1 初始化文档 刘刚
2023.07.21 v0.2 增加算法功能列表 刘刚

[TOC]

ARAL是一个灵活, 高效且可扩展性强的机器人算法库. 以C++为基础, 使用了大量的C++11/17特性, 不依赖于第三方算法库。主要包括建模、规划和控制三部分, 具体可分为基础数学、刚体建模、运动学、动力学、标定辨识、运动规划、轨迹规划、运动控制、力控制等模块。

aral以基础算法平台为发展目标,旨在配合遨博控制器软件,快速、有效的为遨博产品的更新迭代提供灵活的算法支持。

ARAL: 读音: [ˈɑrɑl], 是 Aubo Robot Algorithm Library 的缩写

文档命名规则

aral算法库开发文档命名前缀规则如下:

  • 1.*. 为 aral 相关文档

  • 2.*. 为建模相关文档

  • 3.*. 为规划相关文档

  • 4.*. 为控制相关文档

  • 5.*. 为其他应用文档

目录及层次定义

. 算法开发环境根目录
├── aubo_description(机械臂描述文件)
│ ├── meshes(机械臂3D几何体文件)
│ │ └── aubo_i5 (具体的机械臂)
│ │ ├── collision(碰撞几何体)
│ │ └── visual(显示几何体)
│ └── urdf(机械臂URDF文件和SRDF文件)
├── include (用户接口头文件)
│ └── aral (接口申明、基础数据类型定义、返回值说明)
├── lib (用户开发库 64位)
├── lib32 (用户开发库 32位)
└── resources (用户开发可能用到的资源文件)

开发库的下载地址为: http://mirrors.aubo-robotics.cn:8001/deploy/

更多文档可以参考算法部文档集

版本定义

示例: 0.0.8+2107061032.001cbf4

由版本号,编译时间, git HEAD组成

版本类型

有两种算法库可以给用户使用,一种名为 aral_basic, 该库比较轻量,用户可以直接使用由 ARAL_API_BASIC标注的接口.

另外一种算法库名为 aral, 该库涵盖所有功能

目前两种算法库均无外部依赖.

接口函数返回状态定义

对于返回值是int类型的接口函数, 一般这样规定

  • 返回值 = 0(E_NO_ERROR): 函数运行成功, 正常返回

  • 返回值 < 0: 函数计算或者执行失败, 在算法库中一般会打印具体的错误信息. 如果需要向上抛错误信息, 可以调用以下接口:

    const std::string GetErrDescription(const int errCode);
    
  • 返回值 > 0: 程序处于某种特殊状态, 如运行到轨迹终点; 算法退化. 一般如果处于这种情况, 程序能继续执行. 具体的返回值及错误描述在return_value_definition.hpp中定义.

32位库可能会遇到的问题

  • 为保证算法库的编译和运行环境一致, 在链接aral算法库时需要同时链接标准c++库(如libstdc++.so.6.0.28)

  • 目前在32位库中, 可能引起Eigen对齐问题的原因没有找全, 为了保证库的稳定性, 现在的解决办法是直接对Matrix,Array,Quaternion等对象使用DontAlign属性来忽略对齐问题, 这样可以完全禁用向量化, 但会牺牲一部分效率.

算法库实例生成

/**
 * @brief 创建机器人算法库实例
 * @param model:机器人对应的URDF描述文件
 * @param config:通过配置文件创建不同的特性(reserved)
 * @return 算法库实例指针,如果失败,返回 nullptr
 * ARAL算法库文件可以通过dlopen在运行时打开, 通过调用CreateRLIntfacePtr函数得到基类接口指针
 */
ARAL::RLIntfacePtr CreateARALIntfacePtr(const std::string& model, const std::string& config = "");

/**
 * @brief 创建机器人算法库实例(后续需要调用rlInitial来初始化该实例)
 * @return 算法库实例指针. 如果失败, 返回 nullptr
 */
ARAL::interface::ARALIntfacePtr CreateARALIntfacePtr();

可以同时生成多个实例, 支持以插件的形式动态加载算法库.

软件引用的算法版本

aral 0.26.2+891cbbe

results matching ""

    No results matching ""